package com.shlh.saas.entity.canton.exhibitor;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.HashMap;
import java.util.Map;

/**
 * 广交会展商基础实体类
 * 包含所有届次展商共有的字段
 */
@Data
@TableName("canton_fair_exhibitors")
public class BaseCantonFairExhibitor {

    /**
     * 主键ID
     */
    @TableId
    private Long id;

    /**
     * 公司名称
     */
    @TableField("company_name")
    private String companyName;

    /**
     * 期数
     */
    @TableField("period")
    private String period;


    /**
     * 展位号
     * 注意：实际数据库表中可能没有此字段
     */
    @TableField(exist = false)
    private String boothNumber;

    /**
     * 产品类别
     * 注意：实际数据库表中可能没有此字段
     */
    @TableField("category")
    private String category;

    /**
     * 电子邮箱
     * 注意：实际数据库表中可能没有此字段
     */
    @TableField("email")
    private String email;

    /**
     * 电话
     * 注意：实际数据库表中可能没有此字段
     */
    @TableField("phone")
    private String phone;

    /**
     * 电话
     * 注意：实际数据库表中可能没有此字段
     */
    @TableField("mobile")
    private String mobile;

    /**
     * 网站
     * 注意：实际数据库表中可能没有此字段
     */
    @TableField("website")
    private String website;

    /**
     * 联系人
     */
    @TableField("contact_person")
    private String contactPerson;

    /**
     * 联系人电话
     */
//    @TableField("contact_phone")
//    private String contactPhone;

    /**
     * 地址
     * 注意：实际数据库表中可能没有此字段
     */
    @TableField("contact_address")
    private String address;

    /**
     * 邮编
     * 注意：实际数据库表中可能没有此字段
     */
    @TableField("postal_code")
    private String postalCode;

    /**
     * 城市
     */
    @TableField(exist = false)
    private String city;

    /**
     * 省份
     */
    @TableField("province_city")
    private String province;


    @TableField("session")
    private String session;

    @TableField("establishment_year")
    private String establishmentYear;

    @TableField(exist = false)
    private String companyType;

    @TableField(exist = false)
    private String companyProfile;

    @TableField(exist = false)
    private String mainProducts;

    @TableField(exist = false)
    private String companyScale;

    @TableField(exist = false)
    private String registeredCapital;

    @TableField(exist = false)
    private String recentExhibitionHistory;


    /**
     * 展位号
     * 注意：实际数据库表中可能没有此字段
     */
    @TableField(exist = false)
    private String fax;

    /**
     * 扩展字段，用于存储不同届次特有的字段
     * 可能包含的字段：
     * - sessionInfo: 广交会届数
     * - category: 分类
     * - brand: 品牌
     * - mainProducts: 主要产品
     * - companyScale: 公司规模
     * - registeredCapital: 注册资本
     * - companyType: 公司类型
     * - enterpriseType: 企业类型
     * - enterpriseNature: 企业性质
     * - tradeForm: 贸易形式
     * - exhibitionHistory: 参展历史
     * - industry: 行业
     * - province: 省份
     * - city: 城市
     */
    @TableField(exist = false)
    private Map<String, Object> extendedFields = new HashMap<>();
} 